﻿using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Travasto.Model
{
    public class SeedDatabaseInitializer :
        DropCreateDatabaseIfModelChanges<TravastoDbContext>
        //DropCreateDatabaseAlways<TravastoDbContext>
    {
        protected override void Seed(TravastoDbContext context)
        {
            base.Seed(context);
            SeedTags(context);
            SeedItinaries(context);
            SeedPackages(context);
            SeedTours(context);
        }

        private static void SeedTours(TravastoDbContext context)
        {
            new List<Tour> { 
                new Tour{ Title="Vestibulum auctor dapibus neque", Description="Lorizzle ipsizzle dizzle funky fresh amizzle, consectetuer adipiscing mofo. Nullizzle gizzle velit, shizznit volutpizzle, suscipizzle quizzle, yo mamma that's the shizzle, sizzle. Brizzle ma nizzle the bizzle. Sed erizzle. Bizzle daahng dawg dolizzle dapibizzle fo shizzle my nizzle sizzle owned. Mauris pellentesque nibh et turpizzle. Bling bling izzle tortor. Pellentesque gangster rhoncus nisi. In fizzle habitasse owned dictumst. You son of a bizzle dapibus. Curabitur tellizzle yo mamma, pretizzle eu, mattizzle ac, eleifend vitae, shit. Ass fo shizzle. For sure semper brizzle sizzle purus."},
                new Tour{ Title="Aliquam tincidunt mauris eu risus", Description="Etiam doggy urna go to hizzle nisl. Rizzle quizzle doggy. Check it out pulvinizzle, ipsizzle malesuada malesuada owned, ass purizzle euismod you son of a bizzle, bow wow wow luctizzle metizzle stuff dope ass. Vivamizzle ullamcorpizzle, sheezy et crackalackin shizznit, nibh fo shizzle my nizzle shizznit turpizzle, in luctizzle leo elit check it out dolor. Maurizzle go to hizzle, orci shizznit volutpizzle consectetuer, sem shit luctus nisi, at shiz enizzle ghetto boofron sizzle. Nullam a velit stuff orci that's the shizzle viverra. Phasellus gizzle sheezy. Sheezy go to hizzle velizzle vel pede sodales facilisizzle. Go to hizzle sapien nulla, iaculizzle fo shizzle, molestie fo shizzle my nizzle, the bizzle a, erizzle. Crunk vitae bow wow wow quis rizzle bibendizzle dang. Nizzle pulvinar uhuh ... yih! velit. Fizzle fo shizzle volutpat. Dizzle gangster leo izzle black pretizzle faucibizzle. Crizzle nec lacizzle rizzle dui condimentizzle ultricizzle. Ut nisl. Dizzle izzle urna. Integer own yo' ipsum in mi. Donec crazy daahng dawg."},
                new Tour{ Title="Praesent dapibus, neque id cursus faucibus, tortor neque egestas", Description="Sizzle vitae rizzle izzle boom shackalack things consequizzle. Funky fresh convallizzle, fo boofron dignissim posuere, dang lorizzle luctizzle pede, a tellivizzle mah nizzle dolizzle sheezy velizzle. Crunk izzle dang nizzle shizznit varizzle yo. Curabitur turpis nisi, dope shiz, porta eleifend, crackalackin izzle, metizzle. Fo shizzle boofron neque. Bizzle ipsizzle dolizzle sizzle that's the shizzle, consectetizzle dang elizzle. Maecenas izzle elizzle. In fo shizzle my nizzle. Vestibulizzle izzle crazy fo dang fo dictizzle. In shiznit black sizzle nizzle mah nizzle. Fo shizzle commodo. Nunc eu fo izzle neque lacinia stuff. Aenean shizzle my nizzle crocodizzle massa shiz crackalackin pharetra lobortizzle. Shizzle my nizzle crocodizzle pimpin' est, gangsta fo shizzle, ornare vel, imperdizzle yo mamma, hizzle. Vivamizzle egizzle rizzle for sure its fo rizzle adipiscing check out this. Curabitizzle fo shizzle crackalackin quis break yo neck, yall ornare nonummy."},
                new Tour{ Title="Pellentesque habitant morbi tristique senectus et netus", Description="Nunc commodo fo shizzle my nizzle izzle my shizz. Nullizzle congue. Vestibulizzle viverra laorizzle my shizz. Quisque fo shizzle amet purizzle my shizz leo shizzle my nizzle crocodizzle condimentizzle. Suspendisse potenti. Nunc boofron sizzle bling bling pot tincidunt away. Crazy gravida tempor shut the shizzle up. In interdizzle erizzle izzle sem. Quisque dawg. Nizzle gizzle mofo away dizzle mollis viverra. Nulla facilisi. Nullam quizzle quizzle a i'm in the shizzle molestie pulvinizzle. Nullizzle sagittis dui for sure velizzle. Cras sempizzle metus sizzle that's the shizzle. Etiam pretium purizzle nizzle dui. The bizzle rutrizzle rhoncus purus."},
                new Tour{ Title="Consectetur adipisicing elit, sed do eiusmod tempor incididunt ", Description="Nulla eu phat. Aliquizzle porta phat shiznit. Bizzle black, sapien at vulputate check it out, we gonna chung i saw beyonces tizzles and my pizzle went crizzle hendrerizzle leo, doggy condimentum nunc rizzle at nunc. Stuff hizzle dolizzle. Away shizzlin dizzle own yo'. Sizzle dope go to hizzle tellivizzle. My shizz gangsta bow wow wow, volutpizzle id, black egizzle, auctizzle egizzle, rizzle. Sizzle pharetra. Nunc bizzle. Shiz sizzle amizzle pimpin' go to hizzle ante blandit dignissim. Quisque laoreet tellizzle sit phat enim. Aenizzle away dignissizzle felizzle."},
            }.ForEach(t => context.Tours.Add(t));
        }

        private static void SeedPackages(TravastoDbContext context)
        {
            new List<Package> { 
                new Package{ Title="Consectetuer adipiscing elit sed diam", Description="Qsum factorial non deposit quid pro quo hic escorol. Olypian quarrels et gorilla congolium sic ad nauseum. Souvlaki ignitus carborundum e pluribus unum. Defacto lingo est igpay atinlay. Marquee selectus non provisio incongruous feline nolo contendre. Gratuitous octopus niacin, sodium glutimate. Quote meon an estimate et non interruptus stadium. Sic tempus fugit esperanto hiccup estrogen. Glorious baklava ex librus hup hey ad infinitum. Non sequitur condominium facile et geranium incognito. Epsum factorial non deposit quid pro quo hic escorol. Marquee selectus non provisio incongruous feline nolo contendre Olypian quarrels et gorilla congolium sic ad nauseum. Souvlaki ignitus carborundum e pluribus unum."},
                new Package{ Title="Nibh euismod tincidunt ut", Description="Euaopan lingues es membres del sam familie. Lor separat existentie es un myth. Por scientie, musica, sport etc, li tot Europa usa li sam vocabularium. Li lingues differe solmen in li grammatica, li pronunciation e li plu commun vocabules. Omnicos directe al desirabilita; de un nov lingua franca: on refusa continuar payar custosi traductores. It solmen va esser necessi far uniform grammatica, pronunciation e plu sommun paroles."},
                new Package{ Title="Laoreet dolore magna aliquam erat", Description="Ma quande lingues coalesce, li grammatica del resultant lingue es plu simplic e regulari quam ti del coalescent lingues. Li nov lingua franca va esser plu simplic e regulari quam li existent Europan lingues. It va esser tam simplic quam Occidental: in fact, it va esser Occidental. A un Angleso it va semblar un simplificat Angles, quam un skeptic Cambridge amico dit me que Occidental es."},
                new Package{ Title="Ut wisi enim ad", Description="Actorial non deposit quid pro quo hic escorol. Olypian quarrels et gorilla congolium sic ad nauseum. Souvlaki ignitus carborundum e pluribus unum. Defacto lingo est igpay atinlay. Marquee selectus non provisio incongruous feline nolo contendre. Gratuitous octopus niacin, sodium glutimate. Quote meon an estimate et non interruptus stadium. Sic tempus fugit esperanto hiccup estrogen. Glorious baklava ex librus hup hey ad infinitum. Non sequitur condominium facile et geranium incognito. Epsum factorial non deposit quid pro quo hic escorol. Marquee selectus non provisio incongruous feline nolo contendre Olypian quarrels et gorilla congolium sic ad nauseum. Souvlaki ignitus carborundum e pluribus unum."},
                new Package{ Title="Minim veniam quis nostrud exerci", Description="Lingues es membres del sam familie. Lor separat existentie es un myth. Por scientie, musica, sport etc, li tot Europa usa li sam vocabularium. Li lingues differe solmen in li grammatica, li pronunciation e li plu commun vocabules. Omnicos directe al desirabilita; de un nov lingua franca: on refusa continuar payar custosi traductores. It solmen va esser necessi far uniform grammatica, pronunciation e plu sommun paroles."},
                new Package{ Title="Ullamcorper suscipit lobortis nisl", Description="Uolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum."},
                new Package{ Title="Ut aliquip ex ea commodo", Description="Consectetur adipiscing elit. Proin diam justo, scelerisque non felis porta, placerat vestibulum nisi. Vestibulum ac elementum massa. In rutrum quis risus quis sollicitudin. Pellentesque non eros ante. Vestibulum sed tristique massa. Quisque et feugiat risus, eu tristique felis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla facilisi. Pellentesque varius ipsum in urna semper volutpat. Etiam ac magna scelerisque, sodales enim at, interdum nibh. Nulla nec blandit orci. Ut suscipit sollicitudin varius. Etiam ut bibendum purus, sit amet tristique lectus."},
            }.ForEach(p => context.Packages.Add(p));
        }

        private static void SeedItinaries(TravastoDbContext context)
        {
            new List<Itinary> { 
                new Itinary{ Title="Day 1 - Vix fastidii epicurei adolescens ea", Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin quis nisi quis augue porta fringilla ac in massa. Nulla in elit velit. Ut euismod tempor felis, ac bibendum metus tristique tristique. Curabitur ac velit euismod, imperdiet tortor eget, luctus nulla. Nullam tristique libero et tortor adipiscing, eu pellentesque velit accumsan. Nullam egestas nunc nulla, ut luctus nisi cursus quis. Ut pulvinar dolor vitae quam pellentesque rhoncus. Etiam sollicitudin sollicitudin odio eu sollicitudin. Curabitur ut dapibus enim, id ornare metus. Cras lobortis, dolor vitae mattis pulvinar, arcu odio molestie quam, vestibulum interdum est nulla eget leo. Aliquam elit purus, volutpat nec semper a, iaculis lacinia eros. Aenean eu leo dapibus, vulputate turpis sed, cursus risus. Morbi sit amet purus nec massa volutpat laoreet." },
                new Itinary{ Title="Day 2 - Eius primis consequat id sed", Description="Maecenas varius dictum purus, at volutpat magna suscipit non. Sed placerat malesuada velit vitae bibendum. Morbi non nulla convallis, dapibus urna eu, tempor elit. Aliquam quis dolor nunc. Morbi vitae tortor justo. Vivamus vitae diam tortor. Sed ultrices varius velit, non porta ipsum laoreet vestibulum. Nullam euismod pulvinar nisl condimentum semper. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos."},
                new Itinary{ Title="Day 3 - Est cu prompta albucius principes", Description="Quisque a purus in magna ornare adipiscing rutrum sit amet sem. Phasellus facilisis urna ac lacus tincidunt molestie. Vivamus non ipsum nec dui vestibulum porttitor. Phasellus non scelerisque sapien. Ut adipiscing quam elit, ac ultricies risus lobortis et. Integer gravida varius libero eget pellentesque. Fusce feugiat ultricies risus non mattis. Aliquam at felis at lectus malesuada auctor quis varius nulla. Fusce vestibulum sollicitudin lacus et accumsan. Sed tristique volutpat tincidunt. Aliquam sit amet ligula vel sem suscipit varius. Mauris consequat fringilla enim quis auctor. Aenean eu fermentum est, et adipiscing dui. Aenean viverra sodales arcu, dictum accumsan orci imperdiet aliquet. Pellentesque nec metus sit amet tellus rhoncus venenatis." },
                new Itinary{ Title="Day 4 - Alienum necessitatibus vis ad anr", Description="Fusce ut magna et velit pharetra accumsan in ac lectus. Phasellus ultrices, purus nec luctus commodo, metus orci imperdiet felis, ut aliquam orci orci vitae leo. Fusce id tortor at sem egestas ultricies. Nunc rhoncus justo posuere magna pretium pretium. Mauris ut commodo libero. Ut elit urna, luctus id tempor rutrum, varius tristique sem. Nulla euismod lectus nunc. Nam malesuada pharetra elit, sit amet viverra ante elementum vel. Ut porttitor rutrum lectus, sed venenatis nisl semper eget. Nam imperdiet euismod turpis, a viverra arcu pharetra eu. Etiam nisi libero, auctor id est eget, lacinia fermentum dui." },
                new Itinary{ Title="Day 5 - Ei est melius contentiones noa", Description="Lorem ipsum dolor sit amet, sit labitur omnesque voluptaria in, te purto wisi nec, integre vituperata quaerendum est et. Vim in duis putent aeterno, sit no summo voluptatum. Ex mei prompta scaevola elaboraret, ipsum indoctum no vix. Eu alii utroque detracto sit.Quaeque legendos disputationi has no, id debet suscipit nec. Eu quo tale solum labores. His an quando lucilius adversarium, zril ubique et mea, usu facilis senserit at. Qui ea assum accusamus. Eum no malis instructior, pro suas persius argumentum ea, id quaeque ceteros dissentias vel." },
            }.ForEach(i => context.Itinaries.Add(i));
        }

        private static void SeedTags(TravastoDbContext context)
        {
            new List<Tag>{ 
                new Tag{ Name="Family"},
                new Tag{ Name="Beach"},
                new Tag{ Name="City"},
                new Tag{ Name="Honeymoon"},
                new Tag{ Name="Fun"},
                new Tag{ Name="Culinary"},
                new Tag{ Name="Cycling"}
            }.ForEach(t => context.Tags.Add(t));
        }
    }
}
